{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib as mlp\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from sklearn import datasets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 解决绘图中文乱码问题\n",
    "plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签\n",
    "plt.rcParams['axes.unicode_minus']=False #用来正常显示负号"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 鸢尾花数据集\n",
    "iris = datasets.load_iris()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      ".. _iris_dataset:\n",
      "\n",
      "Iris plants dataset\n",
      "--------------------\n",
      "\n",
      "**Data Set Characteristics:**\n",
      "\n",
      "    :Number of Instances: 150 (50 in each of three classes)\n",
      "    :Number of Attributes: 4 numeric, predictive attributes and the class\n",
      "    :Attribute Information:\n",
      "        - sepal length in cm\n",
      "        - sepal width in cm\n",
      "        - petal length in cm\n",
      "        - petal width in cm\n",
      "        - class:\n",
      "                - Iris-Setosa\n",
      "                - Iris-Versicolour\n",
      "                - Iris-Virginica\n",
      "                \n",
      "    :Summary Statistics:\n",
      "\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "                    Min  Max   Mean    SD   Class Correlation\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "    sepal length:   4.3  7.9   5.84   0.83    0.7826\n",
      "    sepal width:    2.0  4.4   3.05   0.43   -0.4194\n",
      "    petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)\n",
      "    petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "\n",
      "    :Missing Attribute Values: None\n",
      "    :Class Distribution: 33.3% for each of 3 classes.\n",
      "    :Creator: R.A. Fisher\n",
      "    :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n",
      "    :Date: July, 1988\n",
      "\n",
      "The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken\n",
      "from Fisher's paper. Note that it's the same as in R, but not as in the UCI\n",
      "Machine Learning Repository, which has two wrong data points.\n",
      "\n",
      "This is perhaps the best known database to be found in the\n",
      "pattern recognition literature.  Fisher's paper is a classic in the field and\n",
      "is referenced frequently to this day.  (See Duda & Hart, for example.)  The\n",
      "data set contains 3 classes of 50 instances each, where each class refers to a\n",
      "type of iris plant.  One class is linearly separable from the other 2; the\n",
      "latter are NOT linearly separable from each other.\n",
      "\n",
      ".. topic:: References\n",
      "\n",
      "   - Fisher, R.A. \"The use of multiple measurements in taxonomic problems\"\n",
      "     Annual Eugenics, 7, Part II, 179-188 (1936); also in \"Contributions to\n",
      "     Mathematical Statistics\" (John Wiley, NY, 1950).\n",
      "   - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.\n",
      "     (Q327.D83) John Wiley & Sons.  ISBN 0-471-22361-1.  See page 218.\n",
      "   - Dasarathy, B.V. (1980) \"Nosing Around the Neighborhood: A New System\n",
      "     Structure and Classification Rule for Recognition in Partially Exposed\n",
      "     Environments\".  IEEE Transactions on Pattern Analysis and Machine\n",
      "     Intelligence, Vol. PAMI-2, No. 1, 67-71.\n",
      "   - Gates, G.W. (1972) \"The Reduced Nearest Neighbor Rule\".  IEEE Transactions\n",
      "     on Information Theory, May 1972, 431-433.\n",
      "   - See also: 1988 MLC Proceedings, 54-64.  Cheeseman et al\"s AUTOCLASS II\n",
      "     conceptual clustering system finds 3 classes in the data.\n",
      "   - Many, many more ...\n"
     ]
    }
   ],
   "source": [
    "# 查看该数据集的描述信息\n",
    "print(iris.DESCR)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.1, 3.5, 1.4, 0.2],\n",
       "       [4.9, 3. , 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.3, 0.2],\n",
       "       [4.6, 3.1, 1.5, 0.2],\n",
       "       [5. , 3.6, 1.4, 0.2],\n",
       "       [5.4, 3.9, 1.7, 0.4],\n",
       "       [4.6, 3.4, 1.4, 0.3],\n",
       "       [5. , 3.4, 1.5, 0.2],\n",
       "       [4.4, 2.9, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.1],\n",
       "       [5.4, 3.7, 1.5, 0.2],\n",
       "       [4.8, 3.4, 1.6, 0.2],\n",
       "       [4.8, 3. , 1.4, 0.1],\n",
       "       [4.3, 3. , 1.1, 0.1],\n",
       "       [5.8, 4. , 1.2, 0.2],\n",
       "       [5.7, 4.4, 1.5, 0.4],\n",
       "       [5.4, 3.9, 1.3, 0.4],\n",
       "       [5.1, 3.5, 1.4, 0.3],\n",
       "       [5.7, 3.8, 1.7, 0.3],\n",
       "       [5.1, 3.8, 1.5, 0.3],\n",
       "       [5.4, 3.4, 1.7, 0.2],\n",
       "       [5.1, 3.7, 1.5, 0.4],\n",
       "       [4.6, 3.6, 1. , 0.2],\n",
       "       [5.1, 3.3, 1.7, 0.5],\n",
       "       [4.8, 3.4, 1.9, 0.2],\n",
       "       [5. , 3. , 1.6, 0.2],\n",
       "       [5. , 3.4, 1.6, 0.4],\n",
       "       [5.2, 3.5, 1.5, 0.2],\n",
       "       [5.2, 3.4, 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.6, 0.2],\n",
       "       [4.8, 3.1, 1.6, 0.2],\n",
       "       [5.4, 3.4, 1.5, 0.4],\n",
       "       [5.2, 4.1, 1.5, 0.1],\n",
       "       [5.5, 4.2, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.2],\n",
       "       [5. , 3.2, 1.2, 0.2],\n",
       "       [5.5, 3.5, 1.3, 0.2],\n",
       "       [4.9, 3.6, 1.4, 0.1],\n",
       "       [4.4, 3. , 1.3, 0.2],\n",
       "       [5.1, 3.4, 1.5, 0.2],\n",
       "       [5. , 3.5, 1.3, 0.3],\n",
       "       [4.5, 2.3, 1.3, 0.3],\n",
       "       [4.4, 3.2, 1.3, 0.2],\n",
       "       [5. , 3.5, 1.6, 0.6],\n",
       "       [5.1, 3.8, 1.9, 0.4],\n",
       "       [4.8, 3. , 1.4, 0.3],\n",
       "       [5.1, 3.8, 1.6, 0.2],\n",
       "       [4.6, 3.2, 1.4, 0.2],\n",
       "       [5.3, 3.7, 1.5, 0.2],\n",
       "       [5. , 3.3, 1.4, 0.2],\n",
       "       [7. , 3.2, 4.7, 1.4],\n",
       "       [6.4, 3.2, 4.5, 1.5],\n",
       "       [6.9, 3.1, 4.9, 1.5],\n",
       "       [5.5, 2.3, 4. , 1.3],\n",
       "       [6.5, 2.8, 4.6, 1.5],\n",
       "       [5.7, 2.8, 4.5, 1.3],\n",
       "       [6.3, 3.3, 4.7, 1.6],\n",
       "       [4.9, 2.4, 3.3, 1. ],\n",
       "       [6.6, 2.9, 4.6, 1.3],\n",
       "       [5.2, 2.7, 3.9, 1.4],\n",
       "       [5. , 2. , 3.5, 1. ],\n",
       "       [5.9, 3. , 4.2, 1.5],\n",
       "       [6. , 2.2, 4. , 1. ],\n",
       "       [6.1, 2.9, 4.7, 1.4],\n",
       "       [5.6, 2.9, 3.6, 1.3],\n",
       "       [6.7, 3.1, 4.4, 1.4],\n",
       "       [5.6, 3. , 4.5, 1.5],\n",
       "       [5.8, 2.7, 4.1, 1. ],\n",
       "       [6.2, 2.2, 4.5, 1.5],\n",
       "       [5.6, 2.5, 3.9, 1.1],\n",
       "       [5.9, 3.2, 4.8, 1.8],\n",
       "       [6.1, 2.8, 4. , 1.3],\n",
       "       [6.3, 2.5, 4.9, 1.5],\n",
       "       [6.1, 2.8, 4.7, 1.2],\n",
       "       [6.4, 2.9, 4.3, 1.3],\n",
       "       [6.6, 3. , 4.4, 1.4],\n",
       "       [6.8, 2.8, 4.8, 1.4],\n",
       "       [6.7, 3. , 5. , 1.7],\n",
       "       [6. , 2.9, 4.5, 1.5],\n",
       "       [5.7, 2.6, 3.5, 1. ],\n",
       "       [5.5, 2.4, 3.8, 1.1],\n",
       "       [5.5, 2.4, 3.7, 1. ],\n",
       "       [5.8, 2.7, 3.9, 1.2],\n",
       "       [6. , 2.7, 5.1, 1.6],\n",
       "       [5.4, 3. , 4.5, 1.5],\n",
       "       [6. , 3.4, 4.5, 1.6],\n",
       "       [6.7, 3.1, 4.7, 1.5],\n",
       "       [6.3, 2.3, 4.4, 1.3],\n",
       "       [5.6, 3. , 4.1, 1.3],\n",
       "       [5.5, 2.5, 4. , 1.3],\n",
       "       [5.5, 2.6, 4.4, 1.2],\n",
       "       [6.1, 3. , 4.6, 1.4],\n",
       "       [5.8, 2.6, 4. , 1.2],\n",
       "       [5. , 2.3, 3.3, 1. ],\n",
       "       [5.6, 2.7, 4.2, 1.3],\n",
       "       [5.7, 3. , 4.2, 1.2],\n",
       "       [5.7, 2.9, 4.2, 1.3],\n",
       "       [6.2, 2.9, 4.3, 1.3],\n",
       "       [5.1, 2.5, 3. , 1.1],\n",
       "       [5.7, 2.8, 4.1, 1.3],\n",
       "       [6.3, 3.3, 6. , 2.5],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [7.1, 3. , 5.9, 2.1],\n",
       "       [6.3, 2.9, 5.6, 1.8],\n",
       "       [6.5, 3. , 5.8, 2.2],\n",
       "       [7.6, 3. , 6.6, 2.1],\n",
       "       [4.9, 2.5, 4.5, 1.7],\n",
       "       [7.3, 2.9, 6.3, 1.8],\n",
       "       [6.7, 2.5, 5.8, 1.8],\n",
       "       [7.2, 3.6, 6.1, 2.5],\n",
       "       [6.5, 3.2, 5.1, 2. ],\n",
       "       [6.4, 2.7, 5.3, 1.9],\n",
       "       [6.8, 3. , 5.5, 2.1],\n",
       "       [5.7, 2.5, 5. , 2. ],\n",
       "       [5.8, 2.8, 5.1, 2.4],\n",
       "       [6.4, 3.2, 5.3, 2.3],\n",
       "       [6.5, 3. , 5.5, 1.8],\n",
       "       [7.7, 3.8, 6.7, 2.2],\n",
       "       [7.7, 2.6, 6.9, 2.3],\n",
       "       [6. , 2.2, 5. , 1.5],\n",
       "       [6.9, 3.2, 5.7, 2.3],\n",
       "       [5.6, 2.8, 4.9, 2. ],\n",
       "       [7.7, 2.8, 6.7, 2. ],\n",
       "       [6.3, 2.7, 4.9, 1.8],\n",
       "       [6.7, 3.3, 5.7, 2.1],\n",
       "       [7.2, 3.2, 6. , 1.8],\n",
       "       [6.2, 2.8, 4.8, 1.8],\n",
       "       [6.1, 3. , 4.9, 1.8],\n",
       "       [6.4, 2.8, 5.6, 2.1],\n",
       "       [7.2, 3. , 5.8, 1.6],\n",
       "       [7.4, 2.8, 6.1, 1.9],\n",
       "       [7.9, 3.8, 6.4, 2. ],\n",
       "       [6.4, 2.8, 5.6, 2.2],\n",
       "       [6.3, 2.8, 5.1, 1.5],\n",
       "       [6.1, 2.6, 5.6, 1.4],\n",
       "       [7.7, 3. , 6.1, 2.3],\n",
       "       [6.3, 3.4, 5.6, 2.4],\n",
       "       [6.4, 3.1, 5.5, 1.8],\n",
       "       [6. , 3. , 4.8, 1.8],\n",
       "       [6.9, 3.1, 5.4, 2.1],\n",
       "       [6.7, 3.1, 5.6, 2.4],\n",
       "       [6.9, 3.1, 5.1, 2.3],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [6.8, 3.2, 5.9, 2.3],\n",
       "       [6.7, 3.3, 5.7, 2.5],\n",
       "       [6.7, 3. , 5.2, 2.3],\n",
       "       [6.3, 2.5, 5. , 1.9],\n",
       "       [6.5, 3. , 5.2, 2. ],\n",
       "       [6.2, 3.4, 5.4, 2.3],\n",
       "       [5.9, 3. , 5.1, 1.8]])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看数据集中的数据\n",
    "iris.data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(150, 4)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看数据的形状（即几行几列）\n",
    "iris.data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['sepal length (cm)',\n",
       " 'sepal width (cm)',\n",
       " 'petal length (cm)',\n",
       " 'petal width (cm)']"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看特征量的名称\n",
    "iris.feature_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看每一行样本特征所对应的鸢尾花类型\n",
    "iris.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(150,)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看标记值的形状\n",
    "iris.target.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['setosa', 'versicolor', 'virginica'], dtype='<U10')"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris.target_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.1, 3.5],\n",
       "       [4.9, 3. ],\n",
       "       [4.7, 3.2],\n",
       "       [4.6, 3.1],\n",
       "       [5. , 3.6],\n",
       "       [5.4, 3.9],\n",
       "       [4.6, 3.4],\n",
       "       [5. , 3.4],\n",
       "       [4.4, 2.9],\n",
       "       [4.9, 3.1],\n",
       "       [5.4, 3.7],\n",
       "       [4.8, 3.4],\n",
       "       [4.8, 3. ],\n",
       "       [4.3, 3. ],\n",
       "       [5.8, 4. ],\n",
       "       [5.7, 4.4],\n",
       "       [5.4, 3.9],\n",
       "       [5.1, 3.5],\n",
       "       [5.7, 3.8],\n",
       "       [5.1, 3.8],\n",
       "       [5.4, 3.4],\n",
       "       [5.1, 3.7],\n",
       "       [4.6, 3.6],\n",
       "       [5.1, 3.3],\n",
       "       [4.8, 3.4],\n",
       "       [5. , 3. ],\n",
       "       [5. , 3.4],\n",
       "       [5.2, 3.5],\n",
       "       [5.2, 3.4],\n",
       "       [4.7, 3.2],\n",
       "       [4.8, 3.1],\n",
       "       [5.4, 3.4],\n",
       "       [5.2, 4.1],\n",
       "       [5.5, 4.2],\n",
       "       [4.9, 3.1],\n",
       "       [5. , 3.2],\n",
       "       [5.5, 3.5],\n",
       "       [4.9, 3.6],\n",
       "       [4.4, 3. ],\n",
       "       [5.1, 3.4],\n",
       "       [5. , 3.5],\n",
       "       [4.5, 2.3],\n",
       "       [4.4, 3.2],\n",
       "       [5. , 3.5],\n",
       "       [5.1, 3.8],\n",
       "       [4.8, 3. ],\n",
       "       [5.1, 3.8],\n",
       "       [4.6, 3.2],\n",
       "       [5.3, 3.7],\n",
       "       [5. , 3.3],\n",
       "       [7. , 3.2],\n",
       "       [6.4, 3.2],\n",
       "       [6.9, 3.1],\n",
       "       [5.5, 2.3],\n",
       "       [6.5, 2.8],\n",
       "       [5.7, 2.8],\n",
       "       [6.3, 3.3],\n",
       "       [4.9, 2.4],\n",
       "       [6.6, 2.9],\n",
       "       [5.2, 2.7],\n",
       "       [5. , 2. ],\n",
       "       [5.9, 3. ],\n",
       "       [6. , 2.2],\n",
       "       [6.1, 2.9],\n",
       "       [5.6, 2.9],\n",
       "       [6.7, 3.1],\n",
       "       [5.6, 3. ],\n",
       "       [5.8, 2.7],\n",
       "       [6.2, 2.2],\n",
       "       [5.6, 2.5],\n",
       "       [5.9, 3.2],\n",
       "       [6.1, 2.8],\n",
       "       [6.3, 2.5],\n",
       "       [6.1, 2.8],\n",
       "       [6.4, 2.9],\n",
       "       [6.6, 3. ],\n",
       "       [6.8, 2.8],\n",
       "       [6.7, 3. ],\n",
       "       [6. , 2.9],\n",
       "       [5.7, 2.6],\n",
       "       [5.5, 2.4],\n",
       "       [5.5, 2.4],\n",
       "       [5.8, 2.7],\n",
       "       [6. , 2.7],\n",
       "       [5.4, 3. ],\n",
       "       [6. , 3.4],\n",
       "       [6.7, 3.1],\n",
       "       [6.3, 2.3],\n",
       "       [5.6, 3. ],\n",
       "       [5.5, 2.5],\n",
       "       [5.5, 2.6],\n",
       "       [6.1, 3. ],\n",
       "       [5.8, 2.6],\n",
       "       [5. , 2.3],\n",
       "       [5.6, 2.7],\n",
       "       [5.7, 3. ],\n",
       "       [5.7, 2.9],\n",
       "       [6.2, 2.9],\n",
       "       [5.1, 2.5],\n",
       "       [5.7, 2.8],\n",
       "       [6.3, 3.3],\n",
       "       [5.8, 2.7],\n",
       "       [7.1, 3. ],\n",
       "       [6.3, 2.9],\n",
       "       [6.5, 3. ],\n",
       "       [7.6, 3. ],\n",
       "       [4.9, 2.5],\n",
       "       [7.3, 2.9],\n",
       "       [6.7, 2.5],\n",
       "       [7.2, 3.6],\n",
       "       [6.5, 3.2],\n",
       "       [6.4, 2.7],\n",
       "       [6.8, 3. ],\n",
       "       [5.7, 2.5],\n",
       "       [5.8, 2.8],\n",
       "       [6.4, 3.2],\n",
       "       [6.5, 3. ],\n",
       "       [7.7, 3.8],\n",
       "       [7.7, 2.6],\n",
       "       [6. , 2.2],\n",
       "       [6.9, 3.2],\n",
       "       [5.6, 2.8],\n",
       "       [7.7, 2.8],\n",
       "       [6.3, 2.7],\n",
       "       [6.7, 3.3],\n",
       "       [7.2, 3.2],\n",
       "       [6.2, 2.8],\n",
       "       [6.1, 3. ],\n",
       "       [6.4, 2.8],\n",
       "       [7.2, 3. ],\n",
       "       [7.4, 2.8],\n",
       "       [7.9, 3.8],\n",
       "       [6.4, 2.8],\n",
       "       [6.3, 2.8],\n",
       "       [6.1, 2.6],\n",
       "       [7.7, 3. ],\n",
       "       [6.3, 3.4],\n",
       "       [6.4, 3.1],\n",
       "       [6. , 3. ],\n",
       "       [6.9, 3.1],\n",
       "       [6.7, 3.1],\n",
       "       [6.9, 3.1],\n",
       "       [5.8, 2.7],\n",
       "       [6.8, 3.2],\n",
       "       [6.7, 3.3],\n",
       "       [6.7, 3. ],\n",
       "       [6.3, 2.5],\n",
       "       [6.5, 3. ],\n",
       "       [6.2, 3.4],\n",
       "       [5.9, 3. ]])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将鸢尾花的萼片长度和宽度从数据集中取出来\n",
    "X = iris.data[:, :2]\n",
    "X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(150, 2)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制散点图，横坐标为萼片长度，纵坐标为萼片宽度\n",
    "plt.scatter(X[:, 0], X[:, 1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "绘制散点图的时候希望用不同的颜色加以区分不同种类的鸢尾花"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 先获取每一行鸢尾花对应的鸢尾花种类\n",
    "y = iris.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD6CAYAAAC1W2xyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3X+UFOWZL/Dv08OYEVTGKFfOgsMkYn6sGEeYgEad6RAQ9bLZhMBGMycJJMhe8XBHTHIkQQ3XFdl4sgLJEbMDiF4zkhN3oyd3zxoMhAE9V1xnCP6ImhP0AmJAURgM4BCZfu4f1cVUN9VT1V1vV1dVfz/n9Jnp7rern3ptH2reevopUVUQEVFypCodABERmcXETkSUMEzsREQJw8RORJQwTOxERAnDxE5ElDBM7ERECcPETkSUMEzsREQJM8TPIBE5D8BvVPVSl+eGAHgjewOABar60mDbO/fcc7WxsbHIUImIqltPT8+7qjrCa5yvxA7gxwBOL/DcZwCsV9Xb/AbX2NiI7u5uv8OJiAiAiOz2M85zKUZEJgM4CmB/gSGXAZguIv8lImuzR/BERFQhgyZ2ETkNwB0AFg0y7HkAU1R1IoBaANcV2NY8EekWke4DBw6UGi8REXnwOmJfBGCVqvYOMuZFVd2X/b0bwIVug1S1Q1WbVbV5xAjPJSIiIiqR17LJFACTReRmAE0iskZV5+aNeURElgJ4GcCXANxThjiJKKI+/PBD7N27F319fZUOJTHq6uowevRo1NbWlvT6QRO7qrbYv4tIF4D7RORuVb3dMewuAI8CEAC/VtWNJUVCRLG0d+9enHnmmWhsbISIVDqc2FNVvPfee9i7dy8+9rGPlbQN3yc6VTWd/fX2vMdfhlUZQ0RVqK+vj0ndIBHBOeecgyDnIvkFJaqszk6gsRFIpayfnZ2VjohKwKRuVtD5ZGkiVU5nJzBvHnDsmHV/927rPgC0tVUuLqKY4xE7Vc7ixQNJ3XbsmPU4URns2LEDO3bsqHQYZcfETpWzZ09xj1MyVHD5rVoSO5diqHIaGqzlF7fHKZnKtPz2wQcfYNasWXj//fdxzjnn4OGHH8a3vvUtvPPOO7j44otx//334/vf/z4ef/xxAMAjjzyCTZs24fjx45g9ezb+/Oc/Y/To0Vi3bh36+/tztvXYY4+hr68PM2fOxNGjRzF27FisW7cu6EyUFY/YqXKWLgWGDs19bOhQ63FKpjItv73yyitIpVLYunUr5syZgwcffBDjxo3D1q1bsW/fPrz44otYtmwZFi1ahEWLFmHTpk0AgNWrV2PcuHHYsmULLrzwQjz44IOnbOvIkSPYt28fFixYgI0bN2LXrl14++23A8VbbkzsVDltbUBHBzBmDCBi/ezo4InTJCvT8tv48eMxbtw4XH311diwYQP++Mc/4vHHH0c6ncYbb7yBt956y/V1r7zyCiZNmgQAuOyyy/Dqq6+esq2hQ4eitrYWa9asQVtbGw4ePIgPPvggULzlxsROldXWBuzaBWQy1k8m9WQrtMwWcPnthRdewBVXXIGnnnoKhw4dwtixY3HLLbegq6sLd999Nxqy2z/99NNxLPsXg6rioosuwrZt2wAA27Ztw0UXXXTKtp5++mmsXbsWM2fOxPr16zFs2LBAsYaBiZ2IwlOm5bfGxkb85Cc/wec+9zns378fc+fOxZNPPomWlhb87Gc/w/nnnw8AmDp1Kn71q1/hiiuuwNNPP425c+fiD3/4A1paWvCnP/0Js2fPPmVbzc3NmDp1KpYtW4bJkycDQMG/AKJCVDX0N21ublb2YydKhldffRWf/vSn/b+gs9NaU9+zxzpSX7qUf6m5cJtXEelR1Wav17IqhojC1dbGRF5mXIohIkoYJnYiooRhYiciShgmdiKihGFiJyLKc8stt5T82nQ6bS6QEjGxE1Ho0mnrFlUrVqyodAiBMLFTMLxQBlXY0qVL8cQTTwAAli1bhocffhgzZ85ES0sLbr755pPj0uk0vve972HatGkArMZh06dPR0tLC7785S/jxIkTOWNtfX19uP7663HllVdi+vTpOHbsGI4fP44bbrgBra2taGtrw1//+lfX2AqNy4/FNCZ2Kp3dqW/3bkB1oFMfkzsVYB+pb9li3Uwcuc+aNQtPPvkkAGDr1q3Yu3fvKQ3AAKtlwOWXX44NGzYAOLVx2JEjR1y339HRgUsuuQTPPPMMvvKVr+Dll192bR7mptC4/FhMY2Kn0vFCGRQBn/jEJ7B37168//77qK+vx969e10bgI0bNw4zZsw4+Tq3Zl9uXnvtNUycOBEAMHv2bHz2s591bR7mptC4/FhMY2Kn0vFCGVSkri7r1tpq3ez7QU2cOBErVqzAF7/4RXzyk590bQB2xhln5LzGrdmXm0996lN4/vnnAQD33HMP1qxZ49o8zE2hcfmxmMaWAlQ6XiiDImLWrFm48sorsXv3bqRSKcyZMwfr1q3DWWedhUcffdT1NY2NjbjtttuwdOlS1NXVobnZvQXLjTfeiG9+85tIp9M455xz0NnZCRHB7Nmz0dLSgvPPPx8/+MEPXF87d+5cX+NMYxMwKl3+1XAAq1Mfe6pXlaKbgJEvQZqAcSmGSscLZRBFEpdiKBh26iOKHB6xJxlrzImqEo/Yk6pMV4MnoujjEXtSscacqGoxsScVa8wpovIr8cpVmRekkZff1wZ5j3JiYk+qMl0NniiIJV1LsHDDwpPJXFWxcMNCLOlaYvy9gjTy8vvaqDYLY2JPqjJdDZ6oVKqK3r5erHxu5cnkvnDDQqx8biV6+3pLPnLPbwL22GOPATi1fa5bE7Brr70WkyZNwte+9jXcc889OWNtS5YsweLFi9HS0oKmpibs37/fdZxbs7AjR47gmmuuwVVXXYU5c+aUtH+lYGJPKtaYU8SICJZPW472Se1Y+dxKpO5KYeVzK9E+qR3Lpy2HiJS03fwmYNddd53ruPzGW6+99hpGjx6NZ555Bjt37hz0W6E7d+7E1q1bMWPGDPzud79zHePWLGzfvn1YsGABNm7ciF27duHtt98uaR+LxcSeZG1twK5dQCZj/WRSpwqzk7tTkKQOnNoEbNiwYa7j8htvjRo1Cj09PWhpaUF7e/ug7/GNb3wDANDQ0FCwRa9bs7Da2lqsWbMGbW1tOHjwID744INSdrFovhK7iJwnIr8f5Pm1IvKsiNxuLjSiLNbjJ4a9/OLkXHMvlbMJWCH5jbd+85vf4I477sCzzz6LNo+DnkL/WDi5NQtbu3YtZs6cifXr1/vahil+j9h/DOB0tydEZAaAGlW9HMDHReRCU8ERsed7cjjX1NsntSNzZ+bkskzQ5D5r1iysWLEC06dP9/2aSy+9FAsWLMDkyZNx/fXX4+WXXy75/QGrWdj27duRTqexfft2fP3rX8fUqVOxbNkyTJ48GQBOthAuN88mYCIyGcA/APiUqqZdnv8JgN+o6n+KyPUATlfVdYNtk03AyLfGRvcOkmPGWMtLVHHFNAFb0rUEvX29J5df7GRfX1ePJekl5Q00z+rVq7F+/XrU1taitrYW3/3udyNxvVJbkCZggyZ2ETkNwAYAXwbwRIHEvhbAT1T1BRG5GsB4Vf1nl3HzAMwDgIaGhgm73f5nJcqXSllH6vlErHMHVHHFdndU1Zw19fz7ZClnd8dFAFapau8gY45gYJnmjELbVNUOVW1W1eYRI0Z4xUVkYT1+LBSzjJKfxJnUTxX0nINXYp8C4GYR6QLQJCJrXMb0ALgy+/slAHYFiojIifX4kVdXV4f33nuvbN8grTaqivfeew91dXUlb2PQJmCq2mL/nk3u94nI3arqrH55AsDTIvI3AK4FcFnJ0RDls6sVFi+22iE0NFhJnaWbkTF69Gjs3bsXBw4cqHQoiVFXV4fRo0eX/HojV1ASkbMBTAWwVVX3e43nyVMiouKFegUlVT2kqr/0k9QpRubPB4YMsU5UDhli3SeiyGM/dnI3fz7wwAMD9/v7B+6vWlWZmIjIF7YUIHcdHcU9TkSRwcRO7vr7i3uciCKDiZ3c1dQU9zgRRQYTO7mzr4/q93EiigyePCV39gnSjg5r+aWmxkrqPHFKFHlM7FTYqlVM5FTVTPS1qURvHC7FxNWUKVZ9uX2bMqXSEZWGvdYpokxcnzXMa7w6MbHH0ZQpwKZNuY9t2hS/5M5e6xRRJq7PWq5rvPphpKVAsdhSIKDB/oyLUyMm9lqnCHMmYlux12c1sQ0nI/3Yy4WJPaCkJHb2WqeIU1Wk7hpY2MjcmSlpjT3oNmyh9oohKgl7rVOEmbg+a7mu8eqFiT2OvvCF4h6PKvZap4gycX3Wcl7j1QvLHeNo48ZTT6B+4QvW43HCXusUUSKC+rr6nPXw5dOWAwDq6+p9LaWY2EbJ8XONnYjIXdTq2LnGnnQm6r+9tsEac6pyJq7PWolrvHIpJo7s+u9jx6z7dv034H8Zw2sbJt6DiCqCSzFxZKL+22sbrDEnihwuxSTZnj3FPV7KNky8BxFVBBN7HJmo//baBmvMiWKLiT2OTNR/e22DNeZEscXEHkdtbVaf9DFjrK/fjxlj3S/mpKbXNky8BxFVBE+eElHoKtGjPAl48rRUYdVus4acqlSlepRXEyZ2p7D6g3u9D/uUU0JVskd5NeFSjFNYtdusIacqZrpHeTVhP/ZShNUf3Ot92KecEs5kj/JqwjX2UoRVu80acqpilepRXk2Y2J3Cqt1mDTlVqUr2KK8mbALmFFZ/cK/3YZ9ySqhK9iivJr7W2EXkowAmAPi9qr4b9E0ju8ZORKFgHXtpjK2xi8jZAP4DwEQAm0VkhMuYISKyR0S6sreLS4qaBsyfDwwZYp0wHTLEul/M80A4tfCst6cSVKJHeVVR1UFvAFoBXJb9/ccAprmMGQ/gR17bsm8TJkxQGsRNN6ladTG5t5tu8ve8qurPf646dGju80OHWo+bEsZ7ENFJALrVR471Xe4oIi0A7gYwXVXfz3tuPoCbARwF8BKAf1TVE4W2xaUYD0OGAP39pz5eUwOcOOH9PBBOLTzr7YlCZbTcUay/k74K4BCAD12GPA9giqpOBFAL4DqXbcwTkW4R6T5w4ICft61ebknb+bjX80A4/dTZs50oknwl9uxfATcDeBHAF12GvKiq+7K/dwO40GUbHararKrNI0acskxPTjU1gz/u9TwQTi086+2JIsnPydPbROQb2bv1AHpdhj0iIpeISA2ALwF4wWCM1ce+tmihx72eB8KphWe9PVE0eS3CAzgbwG8BbAWwCsBFAO7OGzMO1tH8SwCWem2TJ099uOkm1Zoa64RkTU3uiVE/z6taJzHHjFEVsX6W46RmGO9BRKpahpOnJvHkKcWN+qi79jOGKAj2iimVibpsPzXmQbfhJ86g+2JiPyIknbZuxfLTP5w9xilS/BzWm75FdinGRF22nxrzoNvwE2fQfTGxHxHT2mrdipHJZLT9yXbFEmj7k+2u9/2MITIBXIopgYm6bD815kG34SfOoPtiYj8iwj5K37LF+tnaav3s6vL3elXv/uF+xhAFxX7spTDRB32w/4n9zrXXNvzEGXRfTOxHRARN7IC//uF+xhAFwTX2Upioy/ZTYx50G37iDLovJvYjIrq6rFtrq3Wz7/tlH4075beY9TOGKCxM7E4m6rL91JgH3YafOIPui4n9SADnEkuh/uF+xhCFys9CvOlbZE+eqpqpy/ZTYx50G37iDLovJvYjAX64+Yc5J0Htk6M/3PzDosYQBQWePCUyR9W7Rj2TySCVShW8H4YoxEDlwzX2uPOqQWcf9FB59Q9f0rUEtz51K1rTinTaSvy3PnVrqHXs6YfSmLB6AjLZk+OZTAYTVk9A+qF0aDFQNDCxR1Fnp7WWvXu3VYGye7d1307eXs9TqFQVvX29WPncSrw+diEUA2vuvX29oayxZzIZHD5+GDv27ziZ3CesnoAd+3fg8PHDJ5M9VQcuxUSRVw06+6BHTmta8frYhXjr/IE69lFvtuPN1eHVsTuTua1pZBN6buzhckxCcCkmzrz6nLMPeuQIBBfsXJ7z2AU7w/1yUiqVQs+NPTmPMalXJ/4XjyKvGnT2QY+czZsVly7KrWO/dFG4pY72EbuTc82dqgcTexR51aCzD3qkqKOOfdSb7WjZHH4du3MZpmlkE/rv6EfTyKacNXeqHkMqHQC5aGuzfi5ebC2vNDRYSdt+3Ot5CpWIoL6u3uoNc6e1/KJqLcvU19WHshyTSqUw/CPDc9bUe27swYTVEzD8I8O5HFNlePKUyBCvWveg9/3wU8ceRhxewniPJKrek6dB67v9vD6MPuWsUy9Kqb3WTRqs1t3u1+6sc3f2azfVzz0/ieff93ofv3EEmW/2ri+/ZCX2oPXdfl4/fz7wwAMDLW37+637JpM769QTxavOPZPJnHzeTnjlqIN3xuH2PmHE4RVDJVYQkihZSzFB67v9vD6MPuWsU/fNREveMHjVuTsTnK0c/dy93sfreVMtkNm7vjTV2Y89aA9yP68Po0+5ib7wVSIuiT2dBhSKrZ8f+CO5ZXMGW7py15nD6Ofu9T6DPW9qvsPa16SpzjX2oPXdfl4fRp9y1qn7FrTXeli86tzto1incpRKer2P1/Mm5jusfa1qflpAmr6VrW1v0Ot8+nl9GNcCNXHt1SpTyvVMw+K8Buqob7drS2vuNVH7+/tDuWaq17VZi4mj1Pnm9WGDgc+2vcmqYw9a3+3n9atWWT87Oqy19poa68Sm/XgU9qMKRfEo3eZV555KpQaez64zL59mvg4+Jw6X9ykmjlLn2ysGLseYkaw1dqII86oxVwO13X624TWmv78fNY6lxfz7JpjY12pUnWvsJpioH49KLTxFht2v3T6QUj21X7tXz3c/77Fww0IMr1fU1xeuDx/sfdIPpdG8phkt6QzSaesfn+Y1zcZ7ugfdVxocE7uTifrxqNTCU2RoCLXbzvfoay2tJ7yzp/v25gnIgD3d44pLMU4m6sejUgtPkeJM5jbTtdvD6xV9rQvx1/ED73Ha9nb0PeH/PVrSGWxvnoCjZw70dB/2lya8fy/b/0YBl2JKYaLPuZ9tuCX1wR6n2HOeJLSZ/kKOQFC3Jfc96rYU9x4ppDC+O7en+/huJvW44X8tJxP141GphadIsY/YnUzXbh86pJjzi9z3mPOL4t7jd7/L4C835PZ0/8sNbPsbN0zsTib6nPvZxrx57q8t9DjFmnMZpn1SOzJ3mu/X7nyP07a346zlxb+Hs6f7sL804arN7OkeV8mqYw/KRP14VGrhKTLCqN020RM+p6f7HdbySybDnu5xxJOnFHsmarfDqKsOo37cRD92P9vwEoX59iMucdqMnjwVkY+KyFQROTd4aAH4qQ+PQh9zPzXqXnFGYT9gps95fb11K8d7ePU5d45x1pC79SAfbBsmDFa73biiESPvG4n+7An0/v5+jLxvJBpXNJ6ynULzZdfKO/cjv1beTy90r57uXkz1fC+3uMRZCs//YiJyNoD/ADARwGYRGVFg3FoReVZEbjcco8VPfXgU+pj7qVH3ijMK+xEDztpttz7ndt8Mvz3IC22j3Pr7+3H0w6N499i7J5P7yPtG4t1j7+Loh0dPJvtyz4XpevpK9XxPUpwl82omA6AVwGXZ338MYJrLmBkAHsr+/iCACwfbZklNwMaMcW++NWZMcWPKrabGPYaaGv9xRmA/7CZP9luX0vRp+HDrZm/Dvm/yPVpaMzrq21YTKfs26tu5zaScjabsm7PhlJ9tlNuJEyf03HvPzYnh3HvP1RMnTpwc4zVfJubCBK/3CCOGJMXpBJ9NwDyP2FV1i6puE5EWWEftz7oMSwP4Zfb3pwBcmT9AROaJSLeIdB84cKC4f30Af/XhJurQg/JTo+4VZxT2IyYEggt25tZuX7Azt3bbq4bczzbKraamBvtv3Z/z2P5b9xe1xm5iLkzwnO8QYvAjLnGWwu8auwD4KoBDAD50GTIMwFvZ3w8COC9/gKp2qGqzqjaPGOG6mjM4P/XhUehj7qdG3SvOCOyHib7bvb3Wbfhw62bfN/keXn3OAe8acj/bKDd7+cXJueYOeM+Xibkwwes9wojBj7jEWRI/h/X2DcA/Afiqy+MrMbBcMwPADwbbTklLMX56lEehj7mffu1ecUZhP7JM9DnPX4Ix9R5efc4zmUxRPcgLbaPcnMsw9vJL/n0nt/kyMRcm9tVkz/dyikuc+WCqH7uI3AZgn6r+bwD1AHpdhvXAWn7ZBuASAH8M/k9OHj/14VHoY+6nRt0rzijsR5aJPue9bp8YA+/ht3bbdw/yEuu/g6qpqcGw2mHA0IHll/237sfI+0ZiWO2wU5Zj3ObLxFwYr6cP2PO9nOISZ6k869izVTG/BPARAC8DuB/ADap6u2PMWQCeBrAJwLWwjt4PF9om69jJJNV41LF7MVHHbmIuTIjDfJcSV6XitPmtY/c8YlfVQwCm5j18e96Y90UknR1372BJncg0P729vcaY6A8eNAnkJ/FSLm5hYi5MCDrfYSXUMD4XlWDsO8KqekhVf6mq+71Hl1FEvthDA7y+gGTiS1BhxDHY836/zGJiX8Oar0qJ8xeDoiJZzR/4xR6qANXyf/GnWnAuzUhWrxgTF8ogY+yjyi1brJ+trdZP++Sf1/NRicNPnM4EZHOeeDOxr2HNV6V5zWU1q84LbfCLPVQhcf4yS9RwLoNLVtvehgb3I/Ywv6BEJ+Uf8eYfWXo9H5U4/MRpH2U6Ldyw8GRCMrGvYc1XpXnNJXlL1hG7iQtlEBXJuXRQrgtpVAvOpRnJOmKP0Bd7aIDXkWVYR55B4yj0vNeXXZxHmSb2NalH6kA4FyWpBsk6eUqRY6IeOQpfEvETg9cFKkxcwKJaxOWLVmGrzpOnFCl+65EHuxBHmDXNheLwE4N9kQvnGOdFLtIPpXOuG2pfXzT9UDrnvaJS019pXl8MCuNzEed6eiZ2KgsT9chRqGn2E4PXmP7+fhw+fjjnotD2RaMPHz/Mi0QXKYzPRRQ+e0FwKYbKxqse2T46PpxtQDF8uPXT2TQsjJpmrzj8xOA1xpnMbU0jm9Bzo3XR6KjU9MdFGJ+LKNbT+12KYWKnslJVpO5yrCvfmRnoNOgjsXttwwS//8B4xeA1JpPJoOafHE2+7ug/ucbOxF68cn8uwnqPYnCNnSquUD2yfTDhdSEOP9swwSsOPzF4jbGP2J2ca+4mLjriR1jvU25hfC7CeI+yyW/QHsatpAttUKwUc1GHQhfiCOPCEE5ucfiJwWvMiRMntOlnTYol0KafNWl/f/8p920mLmziR1jvUw5RuGBI7C+0QVSKYuqRC12II+yaZrc4/MYw2JiamhoM/8jwnDX1nht7MGH1BAz/yPCckseo1PRHWRifi7jX03ONncpKDdQBm7gARVB+9sOrTj0K+5EkJj5bUXiPYnCNnQBUvl7Z7mxox1Ds/xTph9JoXtOMs+ozqK+3kmXzmuZT6r99bStd+lz4qaserI59SdcSfOe338l5/ju//U4saqKjKgoXDIkqJnaKrEwmc7L++2jbBGQQzfpv9ah5zmQysa6JpvjhUkxCRaGszUQMZ9VnrKT+3wbqv1PvNOHDn/b4/jp+GHPhTNY25/qs1/NEfnAphhIhhRSGdfbkPDas039SD4tXD3H2GKcwsSomoaLQu9tEDAcP2ssvA49d8KMJyGT8J/cw5sI+Indy9hD3ep7IpGgd9hA5OL+Gn3qnCWcu70fTyKacnitR4Fxmceshnslk2GOcQsUj9oSLQr1yqTGkUqmB+u87epC6P4VMxr3+u5xxePGqeU6lUrGuiab44clTirww+pibqFf22kbUaqLJW9T+m/HkKYUmaK281+vt7of2GNNJ3VTfba+a57jWRFcr9mMniimvGnSuf1enuH8uuBRDJQtaH+7n9VGoQafqFMXPBZdiiHxijTm5ifPnglUxVLKg9eF+Xh+FGnSqTnH+XPCInaqaVw161NdSqTzi/rngETsFFvQo2s/rK1WDHvUjMyqPuH8uePK0QqJWH1spUZmHMOrYwxCFGJIkavNp7OSpiAwXkSdF5CkReVxETnMZM0RE9ohIV/Z2camBVwNT9bGV7rVu84qj0PNRqhMOWmNu70trWpFOV2ZfojSfSRHX7x74WWNvA3Cfql4NYD+Aa1zGfAbAelVNZ28vmQwySeJeH2tKkubBuS+vj10IRfj7kqT5pOCKWooRkX8D8GNV3Zb3+HwANwM4CuAlAP+oqicKbafal2KC1sdGode6nzi8no9inXCpWtOK18cuxFvnD+zLqDfb8ebq8PYlSfNJ7ozXsYvI5QDOzk/qWc8DmKKqEwHUArjO5fXzRKRbRLoPHDjg920TKc71sSYlaR4Eggt25u7LBTvD3ZckzScF4yuxi8hHAfwUwLcKDHlRVfdlf+8GcGH+AFXtUNVmVW0eMWJEScEmRaH6WL9/PXV1WbfWVutm3w+bVxxezwedhyjZvFlx6aLcfbl0Ubj7kqT5pGD8nDw9DcBjAL6vqrsLDHtERC4RkRoAXwLwgsEYEyXu9bGmJGkenPsy6s12tGwOf1+SNJ8UnJ869m8DGA9gsYgsBrAZQK2q3u4YcxeARwEIgF+r6kbjkSaEyfrYKPRaB7zjcHs+7nXCTjn7cqd9xaRw9yVJ80nBsY69QqJWH1spSZqHKOxLFGKg8mETsIgTkZz67jj/z1dfb91KEdc6YTdR2JcoxECVx8RORJQw7BVTAfn13eXsXFhO9lH64cO593t7KxMPEVl4xE5ElDA8Yq+AMHqMh8E+MueROlG08IidiChheMReQXE9Us/HI3WiaOEROxFRwlRfYu/sBBobgVTK+tnZWemICopKv3UvcYkzDJwLioLqWorp7ATmzQOOHbPu795t3QeAtrbKxUVEZFB1tRRobLSSeb4xY4Bdu8KOpqCo9Fv3Epc4w8C5oDCwpYCbPXuKe5yIKIaqaymmocH9iL2hIfxYBhGXOve4xBkGzgVFSXUdsS9dCgwdmvvY0KHW40RECVFdR+z2CdLFi63ll4YGK6lH9MRpXI764hJnGDgXFAXVldgBK4lHNJFT+bBPOVWhEZyRAAAGnklEQVST6kvsVHWWdC1Bb18vfv/PyyEQbN5sXUauvq4eS9JLfG+H6+cUF9W1xk5VR1XR29eLlc+txOtjF0IxcG3Q3r5eXguUEqm66tipKrWmFa+PXYi3zl958rFRb7bjzdXLfS3HsEadooJ17ERZAsEFO5fnPHbBTn9JnSiOuMZOiWevqW99buCxSxcthKq/5M4adYobHrFToqkOrKmPerMdLZszaJ/UjpXPrcTCDQu5xk6JxCN2SjQRQX1dPdontWP5ndYRuqq1LFNfV1/UcgyP1CkuePKUqgLr2CkJePKUyCE/iTOpU5IxsRMRJQwTOxFRwjCxExElDBM7EVHCMLETESUMEzsRUcIwsRMRJQwTe4Sl0wP9SYiI/PJM7CIyXESeFJGnRORxETmtwLi1IvKsiNxuPkwiIvLLzxF7G4D7VPVqAPsBXJM/QERmAKhR1csBfFxELjQbZnWxj9S3bLFuPHInomJ4NgFT1VWOuyMAvOMyLA3gl9nfnwJwJYA/OQeIyDwA8wCgoaGhhFCJiMgP390dReRyAGer6jaXp4cBeCv7+0EA4/MHqGoHgA7AagJWfKjVg/2/iSgIX4ldRD4K4KcAvlJgyBEAp2d/PwM8KUtEVDGeiT17svQxAN9X1d0FhvXAWn7ZBuASAH80FmEV45E6EZXCzxH7t2EtrSwWkcUANgOoVVVn9csTAJ4Wkb8BcC2Ay4xHSkREvvg5efoAgAc8xrwvImkAUwHcq6qHzYRHRETFMnZpPFU9hIHKGCIiqhCe5CQiShgmdiKihGFiJyJKGCZ2IqKEYWInIkoYJnYiooQR1fDbtojIAQCFvsUalnMBvFvhGPxgnGbFIc44xAgwTtP8xDlGVUd4bagiiT0KRKRbVZsrHYcXxmlWHOKMQ4wA4zTNZJxciiEiShgmdiKihKnmxN5R6QB8YpxmxSHOOMQIME7TjMVZtWvsRERJVc1H7EREiVQViV1EzhOR3xd4boiI7BGRruzt4rDjiwO/8yQiOxxjpoYdZ9yIyCoR+bsCz/Gz6ZOI3OSYpx0i8q8uY6pnPlU18TcAjwB4rcBz4wH8qMLxDQGwB0BX9nZxgXH/C8DzAO6vQIye8wTgHAC/qPR/72wsqwD83SDPrwXwLIDbKxjjVQB+FWTOQ4jxJsfncgeAf43qfDpi+SmA5ojO59kA/hNAd6G5NDGfiT9iF5HJAI4C2F9gyGUApovIf4nIWhEx1qO+CJ8BsF5V09nbS/kDRGQCrMsPTgTwjohMCTlGP/M0CcBEEfm/IvKEiJwZcowAABG5CsBIVf0/BZ6fAaBGVS8H8HERuTDUAK0YagGsBrBLRP6+wLCKfzZV9QH7cwngaVgx54jCfDpiGQXgPFXtdnm64vMJ4OsAOtWqVz9TRE6pWzcxn4lO7Nnrtd4BYNEgw54HMEVVJwKoBXBdGLHl8fOBawXw72r9c74B1tFemPzM0xsApqnq5wC8CGBOiPEB8J0w0xi4KMxTsP7BDNs3ALwC4F5Y/xgucBkThc8mAM+EmUbl59N2Mwpf8S0K8/kegHEiUg/gfABvuoxJI+B8Jjqxw0roq1S1d5AxL6rqvuzv3QAqcbTh5wM3DMBb2d8PAjgvpNhsfubpDQA7PcaUm5+EWem5BIBLAXSo6n4APwfweZcxUfhs2gZLmFGYT4hICtY8dhUYEoX5fAbAGAD/E8CrsOYrX+D5THpinwLgZhHpAtAkImtcxjwiIpeISA2ALwF4IcwAs/x84I4AOD37+xkI/7+dn3laCsA+ETizwJhy85MwKz2XgPUP4MezvzfDvXdSFD6bfhJmFOYTsP6KfS77V62bKMznDwH8D1W9C8BrcP+rNvB8Jjqxq2qLY31wB4D7ROTuvGF3wTq5ugPAs6q6MeQwAX8fuB4M/El2CYBdIcVmy5knANtd/qG8D8BiEXkZwHEAD4cbIgB/CbPScwlYJ8c+LyJbAcwH8G8R/WwC3gkzCvMJANMAbAUAEfnbiM7n2QAuzv6/PgmA25wGnk9+QSkCRGQcgEcBCIBfA/gXAPeq6lzHmBSsk1fdAK4BcI2q/r8KhBtp2RO2D8L687UWwHcBXKuqtzvGnAVrLjcBuBbAZap6uALhxoKI3AOgW1V/JSJ/C+BrnM/SiMhEAOtgLcc8C+A7AP7B9HwysceIiJwO4L8D2K6qb1Q6njgTkbMBTAWwNbtsQwFwPs0KOp9M7ERECZPoNXYiomrExE5ElDBM7ERECcPETkSUMEzsREQJ8/8BCeExLuAK/RoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 依次绘制每一种鸢尾花，用不同颜色加以区分\n",
    "plt.scatter(X[y == 0, 0], X[y == 0, 1], color = \"red\", marker = \"o\", label = iris.target_names[0])\n",
    "plt.scatter(X[y == 1, 0], X[y == 1, 1], color = \"blue\", marker = \"+\", label = iris.target_names[1])\n",
    "plt.scatter(X[y == 2, 0], X[y == 2, 1], color = \"green\", marker = \"x\", label = iris.target_names[2])\n",
    "# 添加图例\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将鸢尾花的花瓣长度和宽度从数据集中取出来\n",
    "X = iris.data[:, 2:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 依次绘制每一种鸢尾花，用不同颜色加以区分\n",
    "plt.scatter(X[y == 0, 0], X[y == 0, 1], color = \"red\", marker = \"o\", label = iris.target_names[0])\n",
    "plt.scatter(X[y == 1, 0], X[y == 1, 1], color = \"blue\", marker = \"+\", label = iris.target_names[1])\n",
    "plt.scatter(X[y == 2, 0], X[y == 2, 1], color = \"green\", marker = \"x\", label = iris.target_names[2])\n",
    "# 添加图例\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
